Week1-Static-Web-Architecture

Week 1: 정적 웹 호스팅 아키텍처

AWS 클라우드의 서버리스 서비스들을 활용한 전 세계적으로 빠르고 안전한 정적 웹사이트 구축

Pasted image 20250909143912.png

아키텍처 개요

최종 사용자
    ↓ HTTPS 요청
Route 53 (DNS)
    ↓ 도메인 해석
CloudFront (CDN)
    ↓ 캐시된 콘텐츠 전달
S3 Bucket (저장소)
    ↑ SSL 인증서 (Certificate Manager)

상세 아키텍처

네트워크 흐름

사용자 (전 세계)
    ↓
[인터넷]
    ↓
Route 53 DNS 서비스
├── yourdomain.com (A 레코드)
└── www.yourdomain.com (A 레코드)
    ↓ 별칭 연결
CloudFront Distribution
├── Edge Location (서울)
├── Edge Location (도쿄)  
├── Edge Location (싱가포르)
└── ... (전 세계 200+ 엣지)
    ↓ 원본 요청
S3 Bucket (ap-northeast-2)
├── index.html
├── style.css
├── script.js
└── assets/

보안 계층

Certificate Manager (us-east-1)
├── SSL 인증서 발급
├── 자동 갱신 관리
└── CloudFront 연동
    ↓
HTTPS 암호화 통신
├── HTTP → HTTPS 리다이렉트
├── TLS 1.2/1.3 지원
└── 보안 헤더 적용

핵심 구성 요소

1. S3 Bucket

역할: 웹사이트 파일 저장 및 호스팅
설정:

버킷 정책:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::your-bucket-name/*"
        }
    ]
}

2. CloudFront Distribution

역할: 전 세계 캐시 및 콘텐츠 배포
설정:

캐시 동작:

정적 파일 (HTML, CSS, JS)
├── TTL: 24시간
├── 압축: 활성화
└── 헤더: Cache-Control 준수

이미지 파일 (PNG, JPG, SVG)
├── TTL: 7일
├── 압축: 활성화
└── 최적화: WebP 변환

3. Route 53

역할: DNS 서비스 및 도메인 관리
설정:

DNS 레코드:

Type  | Name | Target
------|------|--------
A     | @    | CloudFront Distribution
A     | www  | CloudFront Distribution
AAAA  | @    | CloudFront Distribution (IPv6)
AAAA  | www  | CloudFront Distribution (IPv6)

4. Certificate Manager

역할: SSL/TLS 인증서 관리
설정:

데이터 흐름

정상 요청 흐름

1. 사용자가 https://yourdomain.com 접속
2. Route 53에서 CloudFront IP 주소 반환
3. 가장 가까운 Edge Location으로 라우팅
4. Edge Location에 캐시된 콘텐츠 확인
   ├── 캐시 HIT → 즉시 응답 (지연 시간 최소)
   └── 캐시 MISS → S3에서 원본 콘텐츠 가져와서 캐시 후 응답
5. HTTPS로 암호화된 응답을 사용자에게 전달

첫 방문자 흐름

첫 방문자 → Edge Location (캐시 없음)
             ↓
         S3 Bucket에서 원본 파일 가져오기
             ↓
         Edge Location에 캐시 저장
             ↓
         사용자에게 응답 전달

재방문자 흐름

재방문자 → Edge Location (캐시 있음)
             ↓
         캐시된 파일로 즉시 응답
         (S3 접근 없이 빠른 응답)

성능 최적화

1. 글로벌 배포

2. 캐싱 전략

파일 유형별 캐시 TTL:
├── HTML: 24시간 (빈번한 업데이트)
├── CSS/JS: 7일 (버전 관리)
├── 이미지: 30일 (거의 변경 없음)
└── 폰트: 1년 (변경 거의 없음)

3. 압축 및 최적화

보안 기능

1. HTTPS 강제

모든 HTTP 요청 → HTTPS 리다이렉트
├── TLS 1.2/1.3 지원
├── Perfect Forward Secrecy
└── HSTS 헤더 적용

2. 보안 헤더

응답 헤더:
├── X-Content-Type-Options: nosniff
├── X-Frame-Options: DENY
├── X-XSS-Protection: 1; mode=block
└── Referrer-Policy: strict-origin-when-cross-origin

3. 접근 제어

비용 모델

예상 비용 (월 기준)

S3 스토리지 (1GB): $0.023
CloudFront 데이터 전송:
├── 첫 10TB: $0.085/GB
├── 다음 40TB: $0.080/GB
Route 53 호스팅 영역: $0.50
Certificate Manager: 무료

총 예상 비용 (소규모): $1-5/월

비용 최적화

장점과 특징

1. 서버리스

2. 고성능

3. 보안

4. 비용 효율성

제한사항

1. 정적 콘텐츠만

2. 실시간 업데이트

발전 가능성

Week 2로의 발전

정적 웹사이트
    ↓
동적 웹 애플리케이션 추가
├── EC2 백엔드 서버
├── RDS 데이터베이스
└── API 엔드포인트

하이브리드 아키텍처

정적 자산 (S3 + CloudFront)
    +
동적 API (EC2 + RDS)
    =
최적화된 풀스택 애플리케이션

Week 1 완성: 전 세계적으로 빠르고 안전한 정적 웹사이트 구축 완료
다음 단계: AWS EDU/Archive/조선대학교 AWS 멘토링/Edu Architecture/Week2-Dynamic-Web-Architecture - 동적 웹 애플리케이션으로 확장